﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data;
using System.Windows.Forms;
using System.IO;
using System.Configuration;

namespace FrbaBus.Core
{
    class DBManager
    {
        SqlConnection sqlConnection = new SqlConnection();
        String connStr;
/*
        public bool Conectar()
        {
            //creado para compatibilidadS

            string currentDir = @"../../Core/Config.txt";
            
            connStr = @File.ReadAllText(currentDir);          

            try //se conecta a la BD
            {
                sqlConnection = new SqlConnection(connStr);
                sqlConnection.Open();
                return true;
            }
            catch (SqlException ex) //si no se pudo conectar, mostrar una ventana con el mensaje de error enviado por la BD
            {
                MessageBox.Show("Error" + Convert.ToString(ex), "Error");
                return false;
            }

        }*/

        public void desconectar()
        {
            sqlConnection.Close();
        }

        public DBManager()
        {

            
            connStr = System.Configuration.ConfigurationManager.AppSettings["ConnectionString"];


            try //se conecta a la BD
            {
                sqlConnection.ConnectionString = connStr;
                sqlConnection.Open();
                
            }
            catch (SqlException ex) //si no se pudo conectar, mostrar una ventana con el mensaje de error enviado por la BD
            {
                MessageBox.Show("Error" + Convert.ToString(ex), "Error");
                
            }

        }



        public SqlConnection getConnection() {
            return this.sqlConnection;
        }

        public SQLResponse executeQuery(String query)
        {
            SQLResponse respuesta = new SQLResponse();
            SqlCommand comando = new SqlCommand(query, this.sqlConnection);
            SqlDataAdapter adapter = new SqlDataAdapter(comando);
            DataTable resultado = new DataTable();
            respuesta.rowsAffected = adapter.Fill(resultado);
            respuesta.result = resultado;

            return respuesta;
        }

        public SQLResponse executeQuery(SqlCommand comando)
        {
            comando.Connection = this.sqlConnection;
            comando.CommandType = CommandType.Text;
            SQLResponse respuesta = new SQLResponse();
            SqlDataAdapter adapter = new SqlDataAdapter(comando);
            DataTable resultado = new DataTable();

            respuesta.rowsAffected = adapter.Fill(resultado);
            respuesta.result = resultado;

            return respuesta;
        }

        public void executeUpdate(String query) { 
        
        }
    }
}
